<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{padding:0;margin:0;}
        div{
            width: 100px;
            height: 100px;
            background-color:pink;
            position:absolute;
            left:0;
            top:0;
        }
    </style>
</head>
<body>
<div></div>
<script>
    //获取元素样式带单位（通过此方法获取的样式是通过浏览器计算的来的，所以不可以进行判断）
    function getStyle(obj,attr){
        return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
        //三元运算，if判断的特殊写法
    }
    //    37/38/39/40(左上右下)
    var oDiv=document.getElementsByTagName("div")[0];
    var bL=false,bT=false,bR=false,bB=false;
    var timer=null;
    timer=setInterval(function(){
        if(bL){
            oDiv.style.left=parseInt(getStyle(oDiv,"left"))-3+"px";
        }
        if(bT){
            oDiv.style.top=parseInt(getStyle(oDiv,"top"))-3+"px";
        }
        if(bR){
            oDiv.style.left=parseInt(getStyle(oDiv,"left"))+3+"px";
        }
        if(bB){
            oDiv.style.top=parseInt(getStyle(oDiv,"top"))+3+"px";
        }
    },30)
    document.onkeydown=function(ev){
        ev=ev||event;
        switch(ev.keyCode){
            case 37: bL=true;break;
            case 38: bT=true;break;
            case 39: bR=true;break;
            case 40: bB=true;break;
        }
    }
    document.onkeyup=function(ev){
        ev=ev||event;
        switch(ev.keyCode){
            case 37: bL=false;break;
            case 38: bT=false;break;
            case 39: bR=false;break;
            case 40: bB=false;break;
        }
    }
</script>
</body>
</html>